refactor(mapgen-studio): recipe-dag oRPC mount — fetch adapter, per-request ssrLoadModule, shared node⇄web bridge#1647
Merged
Conversation
This was referenced Jun 12, 2026
Merged
|
Railway preview (MapGen Studio): not provisioned for this PR. Policy (Graphite stacks): previews are created only for the top-of-stack PR by default.
Debug: |
This was referenced Jun 12, 2026
Merged
This was referenced Jun 12, 2026
Merged
mateicanavra
force-pushed
the
design/dag-tab-stage
branch
from
June 12, 2026 20:44
6a1f30c to
981bea4
Compare
mateicanavra
force-pushed
the
design/dag-orpc-mount
branch
from
June 12, 2026 20:44
f5b492d to
2dfe56a
Compare
Owner
Author
Merge activity
|
mateicanavra
changed the base branch from
design/dag-tab-stage
to
graphite-base/1647
June 12, 2026 22:15
…equest ssrLoadModule, shared node⇄web bridge The mount stays in vite (the only dev server; prod is a static SPA), but normalizes onto the lane's A4-lite pattern: the canonical artifact is the fetch-adapter handler (Bun-ready for P5b, mirroring @civ7/studio-server), behind a thin Connect shim. The node⇄web bridge moves out of vite.config into src/server/http/nodeWebBridge.ts, shared by the /rpc and recipe-dag mounts. The mount itself keeps ssrLoadModule — load-bearing, not legacy: the effect-orpc router layer imports effect-orpc, whose package entry is TypeScript SOURCE that Node cannot load outside vite's pipeline (a static import breaks config evaluation; @civ7/studio-server tolerates it only by bundling effect-orpc into its dist). The real defect — a forever-memoized handler promise that never re-served edits — is fixed by calling ssrLoadModule PER REQUEST (vite's documented SSR pattern; cache hit when unchanged) behind a path pre-check. Path contract unchanged. Decision + research evidence in the dag-tab workstream. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mateicanavra
force-pushed
the
design/dag-orpc-mount
branch
from
June 12, 2026 22:17
2dfe56a to
e53f4cd
Compare
This was referenced Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The mount stays in vite (the only dev server; prod is a static SPA), but
normalizes onto the lane's A4-lite pattern: the canonical artifact is the
fetch-adapter handler (Bun-ready for P5b, mirroring @civ7/studio-server),
behind a thin Connect shim. The node⇄web bridge moves out of vite.config
into src/server/http/nodeWebBridge.ts, shared by the /rpc and recipe-dag
mounts.
The mount itself keeps ssrLoadModule — load-bearing, not legacy: the
effect-orpc router layer imports effect-orpc, whose package entry is
TypeScript SOURCE that Node cannot load outside vite's pipeline (a static
import breaks config evaluation; @civ7/studio-server tolerates it only by
bundling effect-orpc into its dist). The real defect — a forever-memoized
handler promise that never re-served edits — is fixed by calling
ssrLoadModule PER REQUEST (vite's documented SSR pattern; cache hit when
unchanged) behind a path pre-check. Path contract unchanged. Decision +
research evidence in the dag-tab workstream.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com